package com.wxh.jdk8;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @ClassName: StreamTest
 * @Description: jdk1.81 流API 简单说，对Stream的使用就是实现filter-map-reduce过程，产生一个最终结果
 * @Author wxh
 * @Date: 2019/8/26 15:19
 * @Version V1.0.0
 * @Since 1.8
 */
public class StreamTest {
    public static void main(String[] args) {
        // 获取流方式
        // 1 数组
        String[] arr = new String[]{"a","b","c"};
        Stream<String> stringStream = Arrays.stream(arr);
        // 2. 集合
        List<String> strings = Arrays.asList("111", "222", "333");
        strings.stream().forEach(s-> System.out.println(s));
        // collect方法也是一个流的终点方法，可收集最终的结果 后面不能进行任何操作
        List<String> strings2 = strings.stream().filter(x -> !"111".equals(x))
                .collect(Collectors.toList());
        strings2.stream().forEach(s-> System.out.println(s));
        // 3. 值
        Stream<String> stringStream2 = Stream.of("a","b","c");

        // 聚合
        List<Integer> nums = Arrays.asList(1,null,3,4,null,6);
        nums.stream().filter(x->x!=null).count();
    }
}
